from pyquery import PyQuery as pq

'''
pyquery 可以说是python版的jquery，
主要通过css选择器获取内容，
用法和jquery前端获取方法一样
1、pyquery(选择器)
2、.items()           当选择器内容很多时候，需要一个个处理的时候
3、.attr('属性名')     获取属性信息
4、.text()            获取纯文本信息，去掉了html标签的信息
5、.html()            获取带html标签的信息
'''

html = '''
<ul>
    <li class="aaa"><a href="http://www.google.com">谷歌</a></li>
    <li class="aaa"><a href="http://www.baidu.com">百度</a></li>
    <li class="bbb" id="qq"><a href="http://www.qq.com">qq腾讯</a></li>
    <li class="bbb"><a href="http://www.sogou.com">搜狗</a></li>
</ul>
'''

content = pq(html)
print(type(content)) # 注意：返回的并不是str类型

# 获取class=a的子
a = content(".aaa a")
print(a) # <a href="http://www.google.com">谷歌</a><a href="http://www.baidu.com">百度</a>

print()

# 获取id是qq的href
qq_href = content('#qq a').attr('href')
print(qq_href) # http://www.qq.com

print()

# 获取id是qq的文本
qq_text = content('#qq a').text()
print(qq_text) # qq腾讯

print()

# 坑，如果多个标签同时拿属性，只能默认拿到第一个
href = content('li a').attr('href')
print(href) # http://www.google.com

print()

# 想要批量获取多个标签拿属性
items = content('li a').items()
for item in items:
    text = item.text()
    href = item.attr('href')
    print(text, href)